/**
 * 课程校验模块
 */

const Joi = require('joi');
const { messages, validPage } = require('../validators/common');

/**
 * 校验添加课程
 */
const validAdd = Joi.object({
    class_id: Joi.number().label('班级ID').integer().min(1).required().messages(messages),
    subject_id: Joi.number().label('科目ID').integer().valid(6, 7, 8, 9, 10, 11, 12).required().messages(messages),
    from_date: Joi.date().label('开始时间').required().messages(messages),
    end_date: Joi.date().label('结束时间').required().messages(messages),
    teacher_id: Joi.number().label('教师ID').integer().min(1).required().messages(messages),
});

/**
 * 校验添加课程
 */
const validUpdate = Joi.object({
    id: Joi.number().label('id').integer().min(1).required().messages(messages),
}).concat(validAdd);

/**
 * 校验搜索
 */
const validSearch = Joi.object({
    class_id: Joi.number().label('班级ID').integer().min(0).allow(null).messages(messages),
    from_date: Joi.date().label('开始时间').allow('', null).messages(messages),
    end_date: Joi.date().label('结束时间').allow('', null).messages(messages),
    subject_id: Joi.number().label('科目ID').integer().valid(0, 6, 7, 8, 9, 10, 11, 12).allow(null).messages(messages),
    teacher_id: Joi.number().label('教师ID').integer().min(0).allow(null).messages(messages),
}).concat(validPage);

/**
 * 校验搜索
 */
const validSearchForSelector = Joi.object({
    isSelf: Joi.boolean().label('是否为本人').required()
}).concat(validPage).concat(validSearch);

module.exports = {
    validAdd,
    validUpdate,
    validSearch,
    validSearchForSelector
}